
# 通过命令“curl ipinfo.io”获取公网信息
# 返回结果如下：
# {
#   "ip": "119.131.24.63",
#   "city": "Shenzhen",
#   "region": "Guangdong",
#   "country": "CN",
#   "loc": "22.5455,114.0683",
#   "org": "AS4134 CHINANET-BACKBONE",
#   "postal": "518000",
#   "timezone": "Asia/Shanghai",
#   "readme": "https://ipinfo.io/missingauth"
# }

# 还可以通过curl ipinfo.io/ip地址来获取指定ip的公网信息
# curl ipinfo.io/119.131.24.63

# 只显示本机公网IP地址
# curl ifconfig.me

# 代理ip请求网页
# curl -x ip:port https:www.baidu.com

# 导入必要的库
import requests

def get_public_ip_info():
    # 使用 curl 命令获取公网信息
    response = requests.get("http://ipinfo.io")

    # 检查请求是否成功
    if response.status_code == 200:
        # 解析返回的 JSON 数据
        ip_info = response.json()

        # 提取并返回本机的公网 IP 地址
        return ip_info
    else:
        # 如果请求失败，返回错误信息
        return None



def get_public_ip():
    # 使用 curl 命令获取公网信息
    response = requests.get("http://ipinfo.io")

    # 检查请求是否成功
    if response.status_code == 200:
        # 解析返回的 JSON 数据
        ip_info = response.json()

        # 提取并返回本机的公网 IP 地址
        return ip_info.get("ip")  # 返回格式如下：119.131.24.63
    else:
        # 如果请求失败，返回错误信息
        return "无法获取公网信息"

# 调用函数并输出结果
if __name__ == "__main__":
    public_ip = get_public_ip()
    print(f"本机公网 IP 地址是: {public_ip}")

    public_ip_info = get_public_ip_info()
    print(f"本机公网信息是: {public_ip_info}")

